From 4fb5e20a8d9e39f1f0a7be031610764e1237499e Mon Sep 17 00:00:00 2001 From: "kaf24@firebug.cl.cam.ac.uk" Date: Mon, 25 Jul 2005 21:00:30 +0000 Subject: [PATCH] Translate some control characters in the qemu monitor. This removes odd control characters displayed in the qemu monitor with vnc Signed-off-by: Edwin Zhain Signed-off-by: Arun Sharma --- tools/ioemu/vnc.c | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/tools/ioemu/vnc.c b/tools/ioemu/vnc.c index 24c397dcc5..233db50f96 100644 --- a/tools/ioemu/vnc.c +++ b/tools/ioemu/vnc.c @@ -393,7 +393,28 @@ static void vnc_process_key(rfbBool down, rfbKeySym keySym, rfbClientPtr cl) keycode>>=8; } } else if(down) { - kbd_put_keysym(keySym); + int qemu_keysym = 0; + if (keySym <= 128) { /* normal ascii */ + qemu_keysym = keySym; + } else { + switch(keySym) { + case XK_Up: qemu_keysym = QEMU_KEY_UP; break; + case XK_Down: qemu_keysym = QEMU_KEY_DOWN; break; + case XK_Left: qemu_keysym = QEMU_KEY_LEFT; break; + case XK_Right: qemu_keysym = QEMU_KEY_RIGHT; break; + case XK_Home: qemu_keysym = QEMU_KEY_HOME; break; + case XK_End: qemu_keysym = QEMU_KEY_END; break; + case XK_Page_Up: qemu_keysym = QEMU_KEY_PAGEUP; break; + case XK_Page_Down: qemu_keysym = QEMU_KEY_PAGEDOWN; break; + case XK_BackSpace: qemu_keysym = QEMU_KEY_BACKSPACE; break; + case XK_Delete: qemu_keysym = QEMU_KEY_DELETE; break; + case XK_Return: + case XK_Linefeed: qemu_keysym = keySym; break; + default: break; + } + } + if (qemu_keysym != 0) + kbd_put_keysym(qemu_keysym); } if(down) { if(keySym==XK_Control_L) -- 2.30.2